/**
 * pharma-business - 8 mars 2011
 * guillaume
 */
package org.bspv.pharma.business.rules.order;

import org.bspv.pharma.business.rules.AbstractLeafSpecification;
import org.bspv.pharma.model.Order;
import org.bspv.pharma.tools.annotations.specification.RG;

/**
 * Pour être annulée, une commande ne doit pas être dans l'état "Terminée"
 * @author guillaume
 *
 */
@RG(id="RG_ORDER_CANCELLATION_001")
public class OrderCancellationRule extends AbstractLeafSpecification<Order> {
    
    /**
     * {@inheritDoc}
     */
    @Override
    public boolean isSatisfiedBy(Order candidate) {
        return !Order.OrderStateEnum.TERMINEE.equals(candidate.getState());
    }
}
